草庐IT

SQL XML 列的元素来分隔列

全部标签

xml - SQLXML 将属性批量加载到单个表中

TLDR;我正在尝试使用SQLXMLBulkLoader(4.0)来加载看起来像这样的XML;3JohnSmith37SlowSid10MissingTown我希望在我正在使用的唯一表(“Client_XMLBulkLoad”,也包含客户名称和ID)的列中捕获国家/地区名称属性。这可能吗?更多详情:这是到目前为止我所拥有的相应XSD(注释掉“国家/地区”)-->如果我尝试批量加载,按原样使用国家/地区,我会收到一条错误消息,指出“国家/地区”需要模式关系。但是,在我正在阅读的所有内容中,关系都是在不同的表之间建立的,而不是为了在同一个表上导入与所有其他数据相同的属性。或者,我尝试用“i

sql - 从 CLOB(包含 XML)中提取特定值,同时为表的每一行创建一个分隔字符串。某些行上的 CLOB 值可能为空

一些背景:数据库是甲骨文。我正在尝试为表格的每一行创建一个分隔字符串。分隔字符串的某些值必须来自CLOB(包含XML)。CLOB在某些行上可能为空,这就是问题所在。例如,我有一个表:'Item',其中包含以下行:'Item_ID'、'Item_CD'、'Item_TXT'(CLOB)。该表有两行。一行将以下XML存储在“Item_TXT”中,另一行的“Item_TXT”为空。test我创建了以下SQL以返回分隔字符串的前3个元素:SELECT'Item%#'||Item_ID||'%#'||Item_STAT_CDFROMItem;这成功了:项目%#12345%#A项目%#123456

XML 到制表符分隔的文本

需要XML、XSLT专家的帮助。我有2个示例记录以XML格式从系统导出,如下所示。我喜欢使用XSLT将数据转换为制表符分隔的文本,如此处所示https://docs.google.com/spreadsheet/ccc?key=0AgOV9Or8-zdzdG8yWTlRb1hWeUhzZG02MHA5TGxqR2c转换对于XML新手来说有点复杂。如果有人可以通过创建XSL文件来帮助我,我将不胜感激。谢谢。282TILvalueSETvalueNOAvalueNOQvalue1,NOQvalue2,NOQvalue3,NOQvalue4LANvalueCALvalueINPvalueSU

xml - 不同的元素和分组

给定以下xml片段:file1desc1file1desc2file2desc1我需要制作类似的东西file1des1desc2file2des1我试过使用key,比如但我真的不明白如何将它带到下一步,或者这是否是正确的方法。 最佳答案 这个解决方案比Richard提出的解决方案更简单、更高效,同时更通用:这个转换:应用于提供的XML文档时:file1desc1file1desc2file2desc1产生想要的结果:file1desc1desc2file2desc1请注意第一个的简单匹配模式以及如何使用第二个,我们找到所有“Desc

sql-server - 如何获取 sql server XML 列的 xml 安全版本

有没有办法在sqlserver中获取xml列的xml安全版本?我所说的xml-Safe是指转义特殊字符,如、'、&等。我想避免自己进行替换。sqlserver中是否有内置函数。我想实现的是将xml内容存储到另一个xml属性中。 最佳答案 这不是这个问题的直接答案,但对于任何试图在TSQL中对字符串进行xml转义的人来说,这是我写的一个小函数:CREATEFUNCTIONescapeXml(@xmlnvarchar(4000))RETURNSnvarchar(4000)ASBEGINdeclare@returnnvarchar(400

c# - 在 C# 中使用德语小数分隔符对双值进行 XML 反序列化

我正在尝试反序列化Movie来自“德语”xml字符串的对象:stringinputString=""+""+"5"+"1,99"//";XmlSerializermovieSerializer=newXmlSerializer(typeof(Movie));MovieinputMovie;using(StringReadersr=newStringReader(inputString)){inputMovie=(Movie)movieSerializer.Deserialize(sr);}System.Console.WriteLine(inputMovie);这里是Movie引用类:

sql - 使用 xml.modify 将参数插入到 xml 列的特定元素中

我想使用存储过程将作为参数传入的一些值插入到列的xml中的元素中。到目前为止我有这个以下参数:@profile_idint,@user_idnvarchar(50),@activity_namenvarchar(50),@display_namenvarchar(50)检索所需的xml:DECLARE@profiles_xmlxmlSET@profiles_xml=(SELECTprofilesfromtbl_applied_profilesWHEREprofiles.value('(Profile/ID)[1]','int')=@profile_id)@profiles_xml中列中

XML 与逗号分隔的文本文件

好吧,我读了几本关于XML的书,并编写了程序来吐出它等等。但问题是。逗号分隔文件和XML文件都是“人类可读的”。但总的来说,逗号分隔的文件在我看来比XML文件容易得多;标签占用的空间通常与数据一样多,甚至更多。这似乎掩盖了我正在阅读的内容,并且格式可以占用一页来包含您可以包含在逗号分隔文件中的单行文本中的相同信息。逗号分隔的文件解析起来要简单得多。所以真正的问题是为什么要使用XML?仅仅因为所有酷child都在这样做? 最佳答案 优势XML相对于CSV的许多优势:分层数据组织自动数据验证(XML模式或DTD)轻松转换格式(使用XSL

sql - 如何在 SQL Server 中选择 XML 列的顶级属性?

我在SQLServer中有一个XML列相当于:我想获取Test(根元素)的foo属性的值作为varchar。我的目标是:SELECTCAST(''ASxml).value('@foo','varchar(20)')ASFoo但是当我运行上述查询时,出现以下错误:Msg2390,Level16,State1,Line1XQuery[value()]:Top-levelattributenodesarenotsupported 最佳答案 JohnSaunders几乎是正确的:-)declare@DataXMLset@Data=''sel

sql-server - 将 XML 数据分解为 SQL Server 数据库列的最佳方式

将XML数据分解成各种数据库列的最佳方法是什么?到目前为止,我主要是像这样使用节点和值函数:INSERTINTOsome_table(column1,column2,column3)SELECTRows.n.value('(@column1)[1]','varchar(20)'),Rows.n.value('(@column2)[1]','nvarchar(100)'),Rows.n.value('(@column3)[1]','int'),FROM@xml.nodes('//Rows')Rows(n)但是我发现即使是中等大小的xml数据,这也变得非常慢。